Feature - Reformatting for linting, format and analysis with Mago - #174
Draft
simon-mundy wants to merge 6 commits into
Draft
Feature - Reformatting for linting, format and analysis with Mago#174simon-mundy wants to merge 6 commits into
simon-mundy wants to merge 6 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
- Add @api to the Feature interfaces, both AbstractFeature bases, EventFeatureEventsInterface, EventFeature, GlobalAdapterFeature, MetadataFeature, SequenceFeature and TableGateway\Feature\FeatureSet - Mark RowGatewayFeature, MasterSlaveFeature and TableGatewayEvent final - Type the EventFeatureEventsInterface constants and both APPLY_HALT - Add array shape docblocks to the FeatureSets, AbstractFeature::$sharedData, RowGatewayFeature::$constructorArguments and TableGatewayEvent::$params - Declare TableGatewayEvent as an EventInterface implementation - Correct AbstractTableGateway's @Property $table to the declared union and narrow TableGateway::__construct's $features docblock - Register the AbstractFeature gateway setters as class initializers - Drop the Feature entries from the analysis baselines
- Make EventFeature::$event non-nullable and assign it explicitly - Resolve GlobalAdapterFeature::getStaticAdapter through a coalesce chain and throw when no adapter is registered - Make MasterSlaveFeature::$masterSql nullable and throw when the gateway has no Sql instance or postInitialize has not run - Throw in SequenceFeature when a statement yields no result, when the sequence returns no usable value and when an insert exposes no arrays - Interpolate the SequenceFeature sequence statements and search insert columns strictly - Resolve the MetadataFeature table through getTable(), throw when it is not a named table, and take the primary key with reset() - Extract RowGatewayFeature::primaryKeyFromMetadata(), flatten the prototype branches and throw when the gateway has no named table - Replace the deprecated setArrayObjectPrototype() calls with setRowPrototype()
- Convert the Feature test methods to #[Test] attributes - Use static:: assertions and strict comparisons throughout - Hoist mock assignments out of the EventFeature call arguments - Assert the MetadataFeature shared data by key rather than isset() - Rename the TestTableGatewayFeature dispatch target to recordCall() - Drop the Feature test entries from the lint baseline
- Test the MasterSlaveFeature Sql guards in postInitialize and postSelect - Test the SequenceFeature result, sequence value and raw state guards - Test the MetadataFeature named table guard and non-primary-key constraints - Test the RowGatewayFeature table, feature set and primary key guards - Test getFeatureByClassName skipping features of another class
- Point the RowGatewayFeature tests at the RowPrototypeResultSet helper - Restore the AbstractTableGateway and Feature class size baseline entries dropped when the baselines were regenerated upstream
simon-mundy
force-pushed
the
qa/feature-src
branch
from
August 24, 2026 01:58
7ffd5d2 to
82a7e1d
Compare
- Resolve the RowGatewayFeature metadata feature through a nullsafe call - Tag the SequenceFeature platform TODO
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Feature component QA pass, split into two commits for review:
Annotate Feature classes and types— annotation-only, no runtime changeGuard nullable state in the TableGateway features— behavioural guards and refactorsAnalyzer 149 → 5, lint 18 → 2 across
src/Feature,src/RowGateway/Featureandsrc/TableGateway/Feature.src/Adapter/Driver/Featureis excluded (Adapter is parked).Replaces #173, which was opened from the wrong head repository.